home *** CD-ROM | disk | FTP | other *** search
/ Linux Cubed Series 8: LINUX Games / Linux Cubed Series 8 - LINUX Games.iso / games / x11 / networke / xfirepow.000 / xfirepow / xfirepower-0.84 / client / libsprite / point.c < prev    next >
C/C++ Source or Header  |  1995-05-23  |  1KB  |  59 lines

  1. #include "allincludes.h"
  2.  
  3. void
  4. W_DrawPoint(window, x, y, color)
  5.     W_Window window;
  6.     int     x, y;
  7.     W_Color color;
  8. {
  9.     Window  win;
  10.  
  11. #ifdef DEBUG
  12.     printf("Point on %d\n", window);
  13. #endif
  14.     win = W_Void2Window(window)->drawable;
  15.     XDrawPoint(W_Display, win, colortable[color].contexts[0], x, y);
  16. }
  17.  
  18. static XPoint _pcache[NCOLORS][MAXCACHE];
  19. static int _pcache_index[NCOLORS];
  20.  
  21.  void
  22. FlushPointCache(win, color)
  23.     Window  win;
  24.     int     color;
  25. {
  26.     XDrawPoints(W_Display, win, colortable[color].contexts[0],
  27.         _pcache[color], _pcache_index[color], CoordModeOrigin);
  28.     _pcache_index[color] = 0;
  29. }
  30.  
  31. void
  32. W_CachePoint(window, x, y, color)
  33.     W_Window window;
  34.     int     x, y, color;
  35. {
  36.     Window  win = W_Void2Window(window)->drawable;
  37.     register XPoint *p;
  38.  
  39.     if (_pcache_index[color] == MAXCACHE)
  40.     FlushPointCache(win, color);
  41.  
  42.     p = &_pcache[color][_pcache_index[color]++];
  43.     p->x = (short) x;
  44.     p->y = (short) y;
  45. }
  46.  
  47. void
  48. W_FlushPointCaches(window)
  49.     W_Window window;
  50. {
  51.     Window  win = W_Void2Window(window)->drawable;
  52.     register i;
  53.     for (i = 0; i < NCOLORS; i++) {
  54.     if (_pcache_index[i])
  55.         FlushPointCache(win, i);
  56.     }
  57. }
  58.  
  59.